<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>
// Promsie静态方法：

// Promise.all()可以将多个Promise对象包装成一个新的Promise对象
// Promise.all([多个Promise对象])会等等数组中的多个Promise对象完成后再执行后续程序

// 需求：等三个异步任务都完成之后再执行同步任务4
let p1 = new Promise((resolve,reject)=>{
    setTimeout(()=>{
        console.log( '任务 1' );
        resolve(11);
        // reject(66);
    },1234);
});
let p2 = new Promise((resolve,reject)=>{
    setTimeout(()=>{
        console.log( '任务 2' );
        resolve(22);
        // reject(77);
    },834);
});
let p3 = new Promise((resolve,reject)=>{
    setTimeout(()=>{
        console.log( '任务 3' );
        resolve(33);
    },1234);
});
// console.log( '任务 4' );

// 当p1,p2,p3都成功时，p4为成功状态，结果为p1,p2,p3成功的结果
// 当p1,p2,p3任意一个失败时，p4跟随最先失败的Promise对象的状态和结果
Promise.all([p1,p2,p3])// p4
.then(
    (res)=>{
        console.log( 'p4成功',res );// res = [11, 22, 33]
        console.log( '任务 4' );
    },
    (res)=>{
        console.log( 'p4失败',res );
    }
)
</script>
</body>
</html>